Many color television receivers include on-screen display circuitry for displaying video characters on a television screen. For example, the channel number can be displayed so that a viewer can readily verify to which channel the receiver is tuned. Such displays are typically generated by replacing normal video information with appropriately synchronized character signals developed by an alpha-numeric character generator ROM (CG ROM) in the receiver, so that the character information is displayed on a given portion of the television (or kinescope screen). The information displayed can include time of day information as well as channel information, for example, by employing appropriate electronic control circuits in the receiver. Examples of on-screen character display systems are found in U.S. Pat. No. 3,984,828, inventor Beyers; U.S. Pat. No. 4,354,202, inventor Harlan; and U.S. Pat. No. 5,150,107, inventor Kurisu.
As discussed in Kurisu, a summary of the television transmission process will now be described. A linear scanning process is used to break down a television picture for transmission. The image information in the resulting video signal is used at the receiver to control an electron gun in a kinescope, where the gun sweeps across a screen along nearly horizontal parallel lines that together make up the television picture.
When the video signal is processed at the receiver, it requires a means of synchronizing with the televised scene exactly as scanned by the transmitter camera tube. The speed of the receiver scanning line must duplicate that of the transmitter scanning line so that the top of the scene appears at the top of the screen and not elsewhere. When the horizontal beam reaches the end of the bottom line of the televised scene, it must retrace back to the beginning of the top line without being seen, simultaneously at both transmitter and receiver. During the retrace, the electron beam at the receiver must be blanked off (turned off) by a high amplitude signal that turns off the electron gun while the scanning circuits retrace the beam. The electron gun is similarly turned off during the vertical retrace, although for a longer time interval.
The scanning process requires means of coordinating the transmitter and receiver. To accomplish this objective, the transmission system generates synchronized signals to be used by the receiver so that it stays in steps with the transmitter. Two sets of synchronization signals are transmitted--horizonal (HSYNC) pulses and vertical (VSYNC) pulses. During each horizonal retrace, a HSYNC pulse is transmitted which is not seen on the screen since the beam is turned off. Similarly, the VSYNC pulse transmitted during each vertical retrace is not visible.
Conventional OSD System Architecture
The conventional on-screen display system is depicted in FIG. 1. The system comprises a microprocessor 40 and an on-screen display (OSD) logic circuit 29 which is hardwired to operate independently of the microprocessor 40 once the microprocessor has fed the initial video data into the OSD circuitry. The independence of the OSD circuitry 29 is attributable to the fact that the OSD circuitry 29 is designed specifically for the purpose of displaying video characters on the television screen, whereas the microprocessor is utilized by the television to perform primarily non-OSD related tasks. Thus, while the OSD circuitry is manipulating the video data to display it on screen, the microprocessor is free to perform other essential processing tasks which are not related to the OSD operations.
Conventional OSD Synchronization
One common problem associated with character OSD is the synchronization between the OSD circuits and the electron gun which uses the video data from the OSD circuitry to project characters on the color tube 70. For example, in a television screen 300 pixels wide by 400 pixels high, the electron gun horizontally scans across each row of pixels at a rate of about 3.6 million pixels per second. For each pixel the electron beam scans across, the color electron gun driver must position the beam to illuminate the appropriate red/green/blue (RGB) parts of the pixel. The determination of which RGB parts of each pixel to illuminate is based upon the data provided by the OSD circuitry 29.
As can be seen in FIG. 1, it is the OSD circuitry 29 which actually determines the appropriate RGB signals to be sent to the color electron driver. The color electron gun driver 60 operates in real-time, meaning that it continuously directs the electron beam across each pixel in the color tube, illuminating the appropriate RGB parts of each pixel as directed by the OSD circuitry 29. Thus, once the driver receives the RGB data, it immediately redirects the electron beam to illuminate the appropriate RGB parts of the pixels it is scanning across. The driver will continue to illuminate those RGB parts for each pixel it scans across until new RGB data has been received from the OSD circuitry 29.
The reason for needing to synchronize the OSD circuitry with the electron gun driver is that the data provided by OSD circuitry 29 must be in sync with the color electron driver's positioning of the electron beam in order to ensure that a stable character is displayed on the color tube 70. If the data provided by the OSD circuitry 29 is not in sync with the color electron driver 60, the resulting characters displayed to the viewer will appear to shake or jitter or otherwise be unstable. This is due to the fact that the electron beam in the color tube constantly scans across each row of horizonal pixels at a rate of about 15.75 KHz, which means that about 30 times a second the characters provided by OSD circuitry 29 are redisplayed on the picture tube. If the data provided by the OSD circuitry 29 is transmitted to the color electron gun driver too early, the character displayed on the screen will appear to shift to the left. If the data from the OSD circuitry 29 is transmitted to the driver too late, the characters generated will appear to the shift to the right. This shifting left and right is observed by the viewer as jitter. Therefore, in order to ensure that the appropriate RGB part of each pixel is illuminated as the beam scans across it, it is essential that the RGB data provided by the OSD circuitry 29 be synchronized with the driver such that the appropriate RGB pixel data is provided to the driver at the precise moment when the electron beam is scanning across the particular pixel of the color tube to which the RGB data relates.
In order to achieve this synchronization, each component within the OSD circuitry 29 is driven by a DOT clock signal provided by the DOT clock oscillator 18. The DOT clock oscillator 18 is designed to have a frequency which is equal to the rate at which the electron beam scans across each pixel in the color tube 70 (i.e. the pixel rate). Thus, by synchronizing the DOT clock with the pixel rate, the data provided by the OSD circuitry 29 will be synchronized with the electron beam, thereby assuring that the character generated on the display is stable.
One advantage of connecting the OSD circuitry 29 to the DOT clock 18 is that the rest of the electronic circuitry within the television is able to operate independently of and typically at a different clock speed than the OSD circuitry 29. As shown in FIG. 1, conventional OSD systems include a microprocessor which is driven by a system clock (SYSCLK) signal 16. This SYSCLK signal frequency is typically different from the frequency of the DOT clock signal. For example, the frequency of the SYSCLK can be 4 MHz, whereas the frequency of the DOT clock is, for example, 6 MHz. Although the microprocessor is driven by the SYSCLK 16, the difference in timing between the SYSCLK and the DOT clock does not interfere with the stability of the characters displayed on the color tube 70. This is because the role of the microprocessor with respect to the OSD circuitry is very minor and does not need to be synchronized with the OSD circuitry 19 in order to provide for a stable character display.
Essentially, the microprocessor's role in conventional OSD systems is to load the appropriate character information to be displayed into the Video RAM (VRAM) 36. After the microprocessor performs this operation, the OSD circuitry 29 works independently of the microprocessor to generate the characters displayed on the color tube 70. An example of the conventional OSD system operation is as follows.
Let us assume that the viewer has selected channel 4, and that the character "4" is to be displayed on the screen. Initially, the microprocessor will determine that the character "4" is to be displayed on the screen and place the appropriate character information into the video RAM. From that point, the microprocessor goes on to perform other processing tasks not related to the OSD sequence while the OSD hardware simultaneously and independently performs the necessary operations to cause the character "4" to be displayed on the TV screen.
After the character data has been placed into the video RAM, the hardware of the conventional OSD system uses this data to retrieve a binary representation (or bit mapped array) of the character "4" from the CG ROM. The OSD hardware causes the CG ROM to output each row (i.e. each horizontal slice) of the bit mapped array to the pattern generator. The pattern generator converts this bit mapped information into the appropriate RGB signals to be provided to the electron gun driver. Each bit of data in the bit mapped array corresponds to one or more pixels on the TV screen. As the RGB data is output to the electron gun driver 60, the appropriate RGB parts of each pixel in the tube 70 are illuminated. After the first row of the bit mapped array of the character "4" has been displayed, the other rows of the bit mapped array of the character "4" are each generated by the OSD hardware and displayed in the same manner, resulting in the complete character "4" being displayed on the TV screen.
Expanding the Width of Characters Displayed.
Occasionally it is desired to alter the font of the character displayed, for example, by enlarging the font to enable viewers with visual impairment to more easily identify the channel selected. In conventional OSD systems, the altering of the font size of the characters displayed is accomplished by adjusting the frequency of the DOT clock which drives the OSD logic circuits 29. For example, to double the width of the characters displayed on the color tube, the frequency of the DOT clock 18 is cut in half. A brief explanation of the conventional technique for expanding the width of the characters displayed is as follows.
As discussed above, the rate of which data is provided by the OSD circuitry 29 to the electron gun driver 60 is the same rate in which the electron beam scans across each pixel in the color tube 70. The electron beam within the color tube 70 scans at a constant rate (i.e. the pixel rate), which is typically not adjustable. When the DOT clock is set to the same frequency as the pixel rate, a one-to-one mapping of the bit mapped array of the character is achieved. This means that each bit of RGB data output by the OSD logic circuit 29 corresponds to a particular pixel on the color tube 70.
However, when the frequency of the DOT clock is cut in half, while the pixel rate is kept constant, each bit of RGB data output from the OSD logic circuit 29 will correspond to two pixels on the color tube 70, thereby producing a one-to-two mapping of the bit mapped array of the character. Thus, in the example above, the number of pixels used to display the character "4" will be doubled when the frequency of the DOT CLOCK is cut in half, with the result that the viewer will perceive the character "4" as being twice as wide as the original character.
A more complete description of conventional OSD systems is described in Digital Television Controller User's Manual, published by Zilog, Inc., 1993 ("Zilog DTC Manual"), herein incorporated by reference. The Zilog DTC Manual describes many of the functions and operations of a conventional OSD system which are commonly known to those skilled in the art, and therefore will not be discussed further in this application.
Although conventional OSD systems have been modified over the years to produce visually pleasing display characters, each of the present day OSD systems suffer from a number of drawbacks. For example, one such drawback, as depicted in FIG. 1, is that the OSD circuitry 29 is almost exclusively hardware implemented. Generally, hardware implementation of circuitry is less flexible and more costly than software implementation since more components must be used to form the hardware logic circuits. In addition, subsequent problems, or bugs, detected in hardware circuits are costly to remedy since typically the circuit itself must be redesigned, manufactured, and reinstalled. In contrast, software implemented logic circuits are easier to debug and cost less to reprogram and install than functionally equivalent hardware logic circuits. Furthermore, hardware logic circuits cannot be easily modified to incorporate novel ideas and improvements, whereas software implemented logic circuits are easily reconfigured to incorporate novel approaches and improvements within software algorithms.
In light of these drawbacks, therefore, one objective of the present invention is to provide a new OSD system architecture which comprises a minimal amount of hardware components, and is primarily implemented by software. An additional objective of the present invention is to provide for a synchronization technique within the software driven OSD system in order to prevent on-screen display jitter. A third objective of the present invention is to provide a technique for altering the font size of the display characters without altering the frequency of the DOT clock.